 -- Eat The Path --

This is a plugin for any marathon scenario that will act kind of like GPS navigation when activated. It can show just about any worthwhile objective on the map, and in most cases lead you directly to them. This is a huge cheat, so it's not really recommended if you want the "true" marathon experience. It's for people that either don't have the patience to navigate through mazes themselves, or for people that just want to make sure they found everything on a given level. It can be very useful for tracking down all secrets.


-- Installation --

Copy the Eat The Path plugin into the Plugins directory for any Aleph One scenario. Make sure it is enabled in Preferences -> Environment -> Plugins. It uses solo lua, so it will NOT be compatible with any other plugin that uses solo lua, or a standalone solo lua script.


-- Configuration
When tracking an objective, the path will be drawn onto the automap. However, it will also place ephemera in game along the path to direct you without using the map. If you don't like this feature, you can turn it off by turning your scripted effects off. Preferences -> Graphics -> Advanced -> Scripted Effects Quality. 

This plugin also uses hotkeys 10, 11, and 12 and the microphone button. Make sure you note what they are set to, and reconfigure them as needed.

If you're using this for a fan scenario, or marathon 1, the ephemera it uses to draw a path may not show up, or might look bad. This can be changed by editing the 2 lines near the top of the Eat The Path.lua file: EphemeraCollection, and EphemeraSequence. Set them to a collection and sequence that makes sense for the given scenario. I have ones for Marathon 1 that make sense commented out. It's best to select something from either collection 1, 4, or 6 so that it's always loaded. Otherwise, you may have to add the chosen collection to the CollectionsUsed table.


-- How to use

This script has a few different modes that can be activated using hotkeys. Until you use a hotkey, it will not do anything.

Hotkey 10 - Pressing this will attempt to calculate a "strict" path to your objective. Strict in this case means it will try its best to not give you a path that you can't actually traverse. (Through small windows, up cliff walls, etc). It's not always perfect, and will sometimes lead you down an inaccessible path. This should be very rare, however. More commonly when it doesn't work right, it simply won't give you a path at all. There are some limitations in its ability to detect a good path, such as when you need to jump across gaps, or when you need to flip a switch to activate a platform.

Hotkey 11 - Pressing this will calculate a path using very lenient pathing logic. This means it will very likely give you a route that you can't actually traverse. However, it should give you a decent idea of where you need to go when hotkey 10 is failing.

Hotkey 12 - By default, the objective is chosen using "smart" logic, that tries to pick the most important next thing you need to do to complete the level. If it is not picking something that makes sense, or if you just want to find something else, you can use this hotkey to override the objective. Each time you press it, it will select a new objective. The selected objective will blink on your map, and have an X annotation. You can then use hotkey 10 or 11 to try to find a path to it. If you cycle through all of the override objectives, it will eventually go back to the default smart objective. To quickly return to the default without needing to cycle through the whole list, hold down the microphone button while pressing this button.

Microphone button - After hitting hotkey 10 or 11, a path will be drawn to your map and in the game for 10 seconds. If 10 seconds isn't long enough, you can use the microphone button to bring it up for another 10 seconds, without recalculating a path. You may notice a pause in the game when using hotkeys 10 or 11, as it tries to calculate paths across the level. Use the microphone button to pull up already computed paths without the slowdown of another full computation.

Ignore a monster or item - If your override objective is set to "Regular Items" or "Monsters", and it is leading you to something you either can't get to or don't care about, and want it to move on to something else, you can have it permanently ignore that monster or item by holding down the microphone button and hitting hotkey 10.


--- Troubleshooting

The in game path isn't showing up or the in game path looks weird and annoying. What's wrong?

Make sure your scripted effects quality is turned on, and if you're playing marathon 1 or a fan scenario, make sure the ephemera collection and sequence are set to something that makes sense for that scenario. See the configuration section above for details.


--- Changelog

v1.1:
* Added ability to permanently ignore certain items and monsters
* Handle jumping gaps better in some limited cases


-- Credits

Coding by W'rkncacnter.
Cookedbread came up with the name "Eat The Path" for this plugin.
Solra and future_you5 from discord helped with a gap jumping formula